From: Alexander Larsson Date: Fri, 21 Oct 2016 09:16:42 +0000 (+0200) Subject: Fix regression for symlinks in bare-user repos X-Git-Tag: archive/raspbian/2022.1-3+rpi1~1^2~4^2~45^2~3 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22%22?a=commitdiff_plain;h=cf6ec1bbbcfea78a85255a6cc4e997a6aca54e73;p=ostree.git Fix regression for symlinks in bare-user repos Commit 1d4f1b8878addd28059c3a3928640491755cd615 started using hardlinks checkouts of symlinks. However, symlinks are not stored as symlink in the repo for bare-user repos, so this breaks user-mode checkouts of such repos. We fix this by checking for !is_symlink in the bare-user case. This fixes: https://github.com/ostreedev/ostree/issues/537 Closes: #538 Approved by: giuseppe --- diff --git a/src/libostree/ostree-repo-checkout.c b/src/libostree/ostree-repo-checkout.c index 298fcd15..9b640648 100644 --- a/src/libostree/ostree-repo-checkout.c +++ b/src/libostree/ostree-repo-checkout.c @@ -450,7 +450,9 @@ checkout_one_file_at (OstreeRepo *repo, gboolean is_bare = ((current_repo->mode == OSTREE_REPO_MODE_BARE && options->mode == OSTREE_REPO_CHECKOUT_MODE_NONE) || (current_repo->mode == OSTREE_REPO_MODE_BARE_USER - && options->mode == OSTREE_REPO_CHECKOUT_MODE_USER)); + && options->mode == OSTREE_REPO_CHECKOUT_MODE_USER + /* NOTE: bare-user symlinks are not stored as symlinks */ + && !is_symlink)); gboolean current_can_cache = (options->enable_uncompressed_cache && current_repo->enable_uncompressed_cache); gboolean is_archive_z2_with_cache = (current_repo->mode == OSTREE_REPO_MODE_ARCHIVE_Z2